home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Reference / FAQs on CD / Mac Programming Books (1⁄3) < prev    next >
Encoding:
Text File  |  1997-05-07  |  19.0 KB  |  456 lines  |  [TEXT/R*ch]

  1. Newsgroups: comp.sys.mac.programmer.info
  2. Subject: [REV] Mac Programming Book Review (1/3)
  3. From:  nick.c  <nick@chem.ucla.edu>
  4. Organization: Digital Innovations
  5. Approved: MacTech Online <Online@MacTech.com>
  6. Distribution: world
  7. Mime-Version: 1.0
  8. Content-Type: text/plain; charset=ISO-8859-1
  9. Content-Transfer-Encoding: 8bit
  10. X-Newsreader: Nick's "Quick Hack" Poster
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                          [Last Updated: May 01, 1997]
  17.  
  18.  
  19.  
  20.               [Review] Macintosh Programming Book Review
  21.               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  22.  
  23.  
  24.               
  25.     The Mac Toolbox is a collection of ROM "tools" that you can 
  26.     use to generate many of the common elements of the Macintosh
  27.     interface: both it's visible interface and it's "method" for
  28.     relating to the user.  A program is a recipe for getting a job 
  29.     done that the computer will read and follow.  You can tell 
  30.     the computer to use the "tools" in the ROM Toolbox as well 
  31.     as other actions but you have to tell the computer in a language 
  32.     it'll understand.  The most common language for creating these 
  33.     recipes on the Mac is C.
  34.     
  35.     Learning a language is a separate, and should be the first,
  36.     step in learning to program a Macintosh.  Only after you
  37.     understand a language like C or Pascal well should you worry
  38.     about manipulating the unique routines of the Macintosh
  39.     Toolbox to create Macintosh specific effects like menus and
  40.     dialogs.  Only after you understand the Toolbox should you
  41.     worry about class libraries that couple many of these routines
  42.     into programming constructs--objects--to realize larger and
  43.     more involved projects quickly.
  44.         
  45.     The following are recommended texts for help learning the principles
  46.     of programming in C, learning C++, learning the Toolbox,
  47.     familiarizing yourself with a particular programming environment,
  48.     and other unique issues involved in programming the Macintosh.  I've
  49.     collected them from usenet posts or other sources, and since I
  50.     haven't read all of them I've included descriptions supplied by
  51.     folks who have.  The author of the description is indicated when 
  52.     I had it.  If anyone objects to being quoted or if I've misquoted 
  53.     anyone, just let me know and I'll remove or correct that entry.  
  54.     Please keep in mind, "best" is an subjective term.
  55.     
  56.     New additions and corrections have been marked "!!" and you can
  57.     search for these strings to jump to the indicated sections:
  58.      
  59.          Part 1:        = Learning C
  60.                         = Learning Pascal
  61.                         = Learning JAVA
  62.                         = Learning C++
  63.                                                
  64.          Part 2:        = Learning the Toolbox
  65.                         = Mac Programming Resources
  66.                         = Learning the PowerMac
  67.                         
  68.          Part 3:        = Graphics Programming
  69.                         = PDA Programming
  70.                         = Special Issues        
  71.                                                       - nick.c 
  72.  
  73. ________________________________________________________________________ 
  74.  
  75.  
  76.                
  77.                                Part 1 of 3
  78.                                ~~~~~~~~~~~                
  79.  
  80.                     
  81. // ============================ Learning C =============================
  82. //      
  83. //  C is the defacto standard language for programming the Mac,
  84. //  while not your only choice, it's certainly a good one for
  85. //  a first language.
  86. //
  87.       
  88.     _The C Programming Language_ 2nd ed. by Brian Kernighan 
  89.     and Dennis Ritchie, Prentice Hall, 1988 ISBN: 0-13-110362-8
  90.       
  91.     The definitive reference for the C language.  A must have.
  92.           
  93.                                             - nick.c
  94.  
  95.                               ***
  96.                               
  97.     The comp.lang.c FAQ: <http://www.eskimo.com/~scs/C-faq/top.html>
  98.                          <ftp://ftp.eskimo.com/u/s/scs/C-faq>                         
  99.           
  100.     _C Programming FAQs: Frequently Asked Questions_ by Steve Summit
  101.     Addison-Wesley, ISBN 0-201-84519-9
  102.     
  103.     The usenet group comp.lang.c is a powerful source for help 
  104.     with the C language, and the FAQ for that group should be required
  105.     reading for anyone taking on the C languge.  It is regularly
  106.     posted to that group, available by ftp, http, and soon to be
  107.     published by Addison-Wesley DevPress.
  108.                                             - nick.c
  109.  
  110.                               ***
  111.  
  112.     _Learn C on the Macintosh_ 2nd Ed by Dave Mark
  113.     Addison Wesley, 1995, ISBN: 0-201-48406-4, $35
  114.       
  115.     Dave Mark has revised his classic.   I haven't read this one
  116.     yet but hope to by the next release of the review.
  117.         
  118.                                             - nick.c
  119.       
  120.                               ***
  121.  
  122.     _The Standard C Library_ by  P.J. Plauger, 
  123.     Prentice Hall ISBN 0-13-131509-9
  124.     
  125.     While browsing at Barnes & Noble the other day I came across a book
  126.     published by Plum Hall and written by the author of the Metrowerks
  127.     libraries (name escapes me at the moment). It was on the ANSI
  128.     libraries, and contained the statement, "The best reference to the
  129.     ANSI libraries is the source of the libraries themselves."
  130.     
  131.                                      - unknown
  132.                                               
  133.                               ***
  134.  
  135.     _C: A Reference Manual_ 4th ed, by Samuel P. Harbison and 
  136.     Guy L. Steele Jr., Prentice-Hall, 1995
  137.     
  138.     Although Kernighan & Ritchie is the "original" definition of C,
  139.     I found that it is not very helpful in quickly answering questions 
  140.     arising during actual programming.  The second edition may have
  141.     been improved somewhat.
  142.     
  143.     However, what I consider THE ultimate C reference is [Harbison and
  144.     Steele].  It really helped me quickly find answers to many tricky
  145.     C programming questions.  I consider this a must.  It is not a
  146.     good book for learning the C language.
  147.  
  148.                             - Tom Verhoeff <wstomv@win.tue.nl>
  149.                                               
  150.                               ***
  151.  
  152.     _Comprehensive C_ by David Spuler, Prentice Hall, 1992
  153.     ISBN: 0-13-156514-1
  154.     
  155.     Picked this one up in Australia, so you might have trouble finding
  156.     it elsewhere.  A *very* good guide to ANSI standard C, covering all
  157.     the various libraries in detail.  Good chapters on portability and
  158.     reusability of code, and general debugging techniques.  A special
  159.     appendix detailing the differences between C and Pascal for anyone
  160.     moving between languages.  The first 6 chapters or so are an      
  161.     in-depth look at all the various C keywords for flow control, 
  162.     variable assignments, etc.  Geared more towards a UNIX type 
  163.     environment, but a good book for anyone wanting to know more about 
  164.     C nonetheless.
  165.                                           - Samrobb <samrobb@aol.com>
  166.       
  167.                               ***
  168.  
  169.     _C: the Pocket Reference, 2nd ed. by Herbert Schildt
  170.     Osborne McGraw-Hill, 1991 ISBN: 0-07-881783-8
  171.                                         
  172.     I also *strongly* recommend ''C: the Pocket Reference'' by Herbert
  173.     Schildt.  I love this little book!  It's great for a quick lookup
  174.     of  functions, especially in instances where you forget what
  175.     order or type   of arguments a certain function takes.
  176.     
  177.                         - Michael P. Minori <gt7344b@prism.gatech.edu>
  178.       
  179.                               ***
  180.                               
  181.     _Annotated ANSI C Standard_, annotations by Herbert Schildt, 
  182.     Osborne/McGraw-Hill, ISBN 0-07-881952-0
  183.     
  184.     This book is the only affordable way to get a hold of a copy
  185.     of the [ANSI C] standard. ... This is the document [the ANSI
  186.     C standard] that _defines_ the language and belongs on the
  187.     bookshelf of every serious C programmer.
  188.     
  189.                                    - Peter V. Gadjokov <pvg@bigbook.com>
  190.     
  191.     It has been suggested that the price differential between this work
  192.     [$40] and the official standard [$130-400] reflects the value of 
  193.     the annotations: they are plagued by numerous errors and omissions, 
  194.     and a few pages of the Standard itself are missing.  Many people 
  195.     on the net recommend ignoring the annotations entirely.  A review 
  196.     of the annotations ("annotated annotations") by Clive Feather 
  197.     can be found on the web at <http://www.lysator.liu.se/c/schildt.html>.
  198.       
  199.     The text of the Rationale (not the full Standard) can be obtained 
  200.     from: 
  201.     
  202.     <ftp://ftp.uu.net/doc/standards/ansi/X3.159-1989>
  203.     <http://www.lysator.liu.se/c/rat/title.html>
  204.     
  205.             - from the comp.lang.c FAQ by Steve Summit <scs@eskimo.com>
  206.  
  207.  
  208. // ====================== Learning Pascal =============================
  209. //      
  210. //  Pascal was the favorite language of Macintosh programmers for 
  211. //  many years.  As it is more rigidly structured language than C, 
  212. //  programmer mistakes are more likely to be caught by your compiler.
  213. //  Much of the Macintosh system was written in Pascal and some of
  214. //  the most essential toolbox references are still written in it.
  215. //      
  216.  
  217.     _Scientific Pascal_, by Harley Flanders
  218.     Birkhauser Publishing, ISBN: 0-8176-3760-5
  219.     
  220.     "In my mind it is not suitable as a first text on programming... It 
  221.     is not a book in which you will learn to program the Macintosh 
  222.     user interface.  But this is essentially irrelevant. The great bulk 
  223.     of the code consists of algorithms that are independent of any GUI 
  224.     or operating system specifics.
  225.  
  226.     And that in my mind is the real strength of this book. It is
  227.     chock-full of useful, carefully coded (and carefully
  228.     documented), real-world algorithms that can be used by any
  229.     mathematically literate scientist or engineer. In that sense
  230.     it is comparable to Numerical Recipes in Pascal---except that
  231.     Flander's code is far better." 
  232.     
  233.     Source code included on DOS formatted floppy.
  234.     
  235.                         - Richard S. Palais <palais@math.brandeis.edu>
  236.     
  237.     c.f. <http://users.aol.com/catambay/pascal-central/scipascal.html>
  238.       
  239. // ========================= Learning JAVA ===========================
  240. //      
  241. //  JAVA is hot right now.  It's a new oop language from SUN and one
  242. //  I'm only learning myself at this point.  But it's becoming very
  243. //  clear that knowing JAVA as a second language will take you far
  244. //  in the years to come.
  245. //
  246.  
  247.  
  248.     _Core Java_ by Gary Cornell and Cay Horstmann SunSoft Press
  249.  
  250.     "The book is good to read and I have understood quite a few
  251.     interesting things in a very short time. The book is about
  252.     $40.00.  It comes with a CD-ROM which has the JDK, the
  253.     examples from the book and other similar books from SunSoft
  254.     and also some development tools."
  255.  
  256.         - Krishnan Venkiteswaran <krishnan@gradin.cis.upenn.edu>
  257.  
  258.     _Exploring Java_ O'Reily Press
  259.  
  260.     My current favorite in Java books is the newly published "Exploring
  261.     Java".  It's more of a reference book, than a book to learn
  262.     by.  A lot of the other books out suffer from being rushed to
  263.     market, in my opinion, to catch the Java wave. One point in
  264.     Exploring Java's favor, in my opinion, is that it doesn't come
  265.     with one of these useless CDs in the back with a jacked up price
  266.     to match.  EJ is only about $25 (US) compared to the usual $35-$40
  267.     price of the +CD books.
  268.  
  269.                                - Wayne Holder <wholder@shvn.com>
  270.  
  271.  
  272.  
  273. // ========================== Learning C++ ===========================
  274. //      
  275. //  C++ is the object implementation of C.  You should learn C
  276. //  before you learn this more complex superset of C.  There's no
  277. //  rush to getting around to C++, it's a wonderfull language, 
  278. //  but not essential to programming the Macintosh.  I've also
  279. //  included books about program design and code optimization in 
  280. //  this section.
  281. //
  282.       
  283.     _The C++ Programming Language_ 2nd ed., by Bjarne Stroustrup
  284.     Addison Wesley Publishing, 1991 ISBN: 0-201-53992-6
  285.     
  286.     As close to a definitive reference for the C++ language as
  287.     exists.  Very important reference, and one I've come to value
  288.     more each time I re-read it.  It's not a tutorial.
  289.       
  290.                                             - nick.c      
  291.                               ***
  292.                               
  293.     The comp.lang.c++ FAQ: <http://www.cerfnet.com/~mpcline/C++-FAQs-Lite/>
  294.     
  295.                                             - nick.c
  296.                               ***
  297.                               
  298.     _Introduction to Object Oriented Programming_ by Timothy Budd
  299.     Addison-Wesley Dev Press, 1991, ISBN: 0201547090
  300.  
  301.     One of the reasons C++ is hard to learn is that it is very
  302.     difficult to describe both the language and OOP foundations in a
  303.     clear, consistent manner. Timothy Budd's book introduces general
  304.     OOP concepts and then provides discussion and examples of their
  305.     implementations in C++, Smalltak, Objective C and Object Pascal.
  306.  
  307.     It's a blue hardcover, about the size and thickness of, say, the
  308.     C++ ARM. There is a picture of platypus on the cover, I've heard
  309.     people refer to it as 'the platypus book'.
  310.  
  311.     (According to the info on Amazon [www.amazon.com], a second edition,
  312.     with added examples in CLOS, Java and Beta will be published Sept
  313.     1st. [1996])    
  314.                                   - Peter V. Gadjokov <pvg@bigbook.com>
  315.  
  316.                               ***
  317.  
  318.     _Secrets of the C++ Masters_ by Jeff Alger
  319.  
  320.     I'd like to mention an often overlooked book that I consider
  321.     an excellent source of ideas for people designing class
  322.     libraries.  The reason it's overlooked is that it has one of
  323.     the dumbest titles on the C++ shelf: "Secrets of the C++
  324.     Masters" by Jeff Alger.
  325.  
  326.     The book is a real gem, though.  It assumes a thorough
  327.     knowledge of C++, and so doesn't waste time teaching what
  328.     most readers already know or can learn from other sources (In
  329.     the preface, Jeff suggests an alternate title for the book
  330.     might be "C++: The Way Of The Gurus" -- jeez, Jeff, maybe you
  331.     ought to let someone else work on your book titles in the
  332.     future...)
  333.  
  334.     The book focuses on three recurring themes: indirection,
  335.     homomorphic class hierarchies, and memory spaces.  In these,
  336.     he develops some intriguing ideas (for example, one
  337.     discussion covers dumb, smart, smarter, master, and
  338.     insufferably brilliant pointers) which highlight potential
  339.     pitfalls that most people might never even consider when
  340.     designing classes.
  341.  
  342.     Highly recommended.
  343.                              - Paul Ferguson <fergy@best.com>
  344.  
  345.                               ***
  346.  
  347.     _C++ Programming with CodeWarrior_ by Jan L. Harrington 
  348.     Academic Press, 1995 ISBN: 0-12-326420-0
  349.  
  350.     This book teaches object-oriented concepts from the beginning and
  351.     focuses on ANSI C++. (I'm doing a sequel on the ToolBook and
  352.     PowerPlant next...) I realize that this book is beyond most of the
  353.     people in this newsgroup [comp.sys.mac.programmer.codewarrior],
  354.     but occassionally we get a newbie here, and there have been a few
  355.     requests for titles of this type. So, in case someone asks, you
  356.     now know about it.
  357.                             - Jan L. Harrington <harrington@mhv.net>
  358.                                           
  359.                               ***
  360.  
  361.     _Learn C++ on the Macintosh_ by Dave Mark
  362.     Addison Wesley Publishing, 1993 ISBN: 0-201-62204-1
  363.     
  364.     An introduction to C++, best if you already understand C.
  365.     I'd consider this an unofficial "part 2" to Dave's Learn C
  366.     book.  Includes a limited version of Symantec C++ 6.0.
  367.       
  368.                                             - nick.c      
  369.                               ***
  370.       
  371.     _Effective C++ / 50 Specific Ways to Improve Your Programs
  372.     and Designs_ by Scott Meyers
  373.     
  374.     Once you get your feet wet, and want to know how to best use
  375.     your new-found C++ abilities, the book to get is "Effective
  376.     C++ / 50 Specific Ways to Improve Your Programs and Designs"
  377.     by Scott Meyers.
  378.                           - Gilles Dignard <gdignard@hookup.net>
  379.     
  380.                               ***
  381.  
  382.     _Advanced C++ Programming Styles and Idioms_ by James Coplien
  383.     ISBN 0-201-54855-0
  384.   
  385.     [A] book I would recommend is "Advanced C++ Programming
  386.     Styles and Idioms". I learned from (and am still learning
  387.     from) both Stroustup's and Coplien's book. Coplien's
  388.     discussion on virtual functions and inheritance is
  389.     particularly  clear and concise, IMHO.
  390.   
  391.     Don't let the term "advanced" scare you off.
  392.       
  393.                             - John Zachary <zachary@bit.csc.lsu.edu>
  394.  
  395.                               ***
  396.  
  397.     _Writing Solid Code_ by Steve Maguire
  398.     
  399.     May I pop in with a recommendation for "Writing Solid Code"
  400.     by Steve Maguire? Once you've gotten through your first C or
  401.     C++ or even Pascal book, this book will teach you lots of
  402.     good habits which will help you a LOT. It also goes through
  403.     known problem areas, especially when writing C code, and
  404.     tells you what you can do about it.
  405.   
  406.     Or maybe I should keep quiet about it and treat it as a
  407.     secret corporate advantage? :-)
  408.                                       - Jon Wtte <h+@nada.kth.se>
  409.         
  410.                               ***
  411.  
  412.     _The Decline and Fall of the American Programmer_ by Edward Yourdon
  413.     Yourdon Press, (c) 1993 ISBN 0-13-191958  about $20US
  414.     
  415.     The single most important book I've read about programming. This
  416.     will frighten you, send chills down your spine, but it will also
  417.     prepare you for a career in the computing industry. Chapters are
  418.     clear, precisely written, and summarized.  It covers an amazing
  419.     array of ideas and principles; an entirely new approach to design
  420.     and methodologies.  If you care about world-class design, you have
  421.     to go read this book.
  422.                               - Jason Newquist  <jrnewquist@ucdavis.edu>
  423.         
  424.                               ***
  425.  
  426.     _The Annotated C++ Reference Manual_ (ARM) Ellis & Stroustrup
  427.     _Effective C++_, Scott Meyers - (Awesome book!)
  428.     _C++ IOStreams Handbook_, Teale
  429.      
  430.     I rely on the [above] pretty heavily. Apart from the last
  431.     one, these are more general C++ references rather than
  432.     Mac-specific. I'll leave the Mac stuff to those who actually
  433.     do Macs for a living (I play for fun).
  434.     
  435.                                       - Todd Blanchard <tblanch@lookout>
  436.      
  437.                               ***
  438.       
  439. [Corrections, comments, or suggestions should be mailed to Nick DeMello 
  440.  at <nick@chem.ucla.edu>.  The latest version of this review can be found 
  441.  at <ftp://members.aol.com/codeweaver/bookreview_1.txt>
  442.      <ftp://members.aol.com/codeweaver/bookreview_2.txt>
  443.      <ftp://members.aol.com/codeweaver/bookreview_3.txt>]
  444.     
  445.              
  446.  
  447. ==========================================================================
  448.   Comp.sys.mac.programmer.info is a moderated newsgroup, where FAQ's, 
  449.    reviews, job listings, and other information valuable to Macintosh
  450.     programmers may be posted and found.
  451.  
  452.  csmp.info is moderated by the MacTech Online Editor <Online@MacTech.com>
  453.   of MacTech Magazine <http://www.mactech.com/>
  454. ==========================================================================
  455.  
  456.